home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSSSSSYYYYRRRRKKKK, DDDDSSSSYYYYRRRRKKKK, CCCCSSSSYYYYRRRRKKKK, ZZZZSSSSYYYYRRRRKKKK - Performs symmetric rank _k update of a real or complex symmetric matrix SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision complex Fortran: CCCCAAAALLLLLLLL SSSSSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ssssssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_a,,,, iiiinnnntttt _l_d_a,,,, ffffllllooooaaaatttt _b_e_t_a,,,, ffffllllooooaaaatttt *_c,,,, iiiinnnntttt _l_d_c))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ddddssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_a,,,, iiiinnnntttt _l_d_a,,,, ddddoooouuuubbbblllleeee _b_e_t_a,,,, ddddoooouuuubbbblllleeee *_c,,,, iiiinnnntttt _l_d_c))));;;; Single precision complex Fortran: CCCCAAAALLLLLLLL CCCCSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n,,,, iiiinnnntttt _k,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b_e_t_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;; C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a,,,, iiiinnnntttt _l_d_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;; Double precision complex Fortran: CCCCAAAALLLLLLLL ZZZZSSSSYYYYRRRRKKKK ((((_u_p_l_o,,,, _t_r_a_n_s,,,, _n,,,, _k,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b_e_t_a,,,, _c,,,, _l_d_c)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b_e_t_a,,,, PPPPaaaaggggeeee 1111 SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;; C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzssssyyyyrrrrkkkk ((((cccchhhhaaaarrrr *_u_p_l_o,,,, cccchhhhaaaarrrr *_t_r_a_n_s,,,, iiiinnnntttt _n, iiiinnnntttt _k,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, iiiinnnntttt _l_d_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b_e_t_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN SSSSSSSSYYYYRRRRKKKK and DDDDSSSSYYYYRRRRKKKK perform a symmetric rank _k update of a real symmetric matrix. CCCCSSSSYYYYRRRRKKKK and ZZZZSSSSYYYYRRRRKKKK perform a symmetric rank _k update of a complex symmetric matrix. These routines perform one of the following symmetric rank _k operations: _C <- _a_l_p_h_a _A_A_T + _b_e_t_a _C or _C <- _a_l_p_h_a _A_T_A + _b_e_t_a _C where the following is true: * _A_T is the transpose of _A; * _a_l_p_h_a and _b_e_t_a are scalars; * _C is an _n-by-_n symmetric matrix; PPPPaaaaggggeeee 2222 SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) * _A is an _n-by-_k matrix in the first operation listed previously, and a _k-by-_n matrix in the second. See the NOTES section of this man page for information about the interpretation of the data types described in the following arguments. These routines have the following arguments: _u_p_l_o Character. (input) Specifies whether the upper or lower triangular part of array _c is referenced, as follows: _u_p_l_o = 'U' or 'u': only the upper triangular part of _c is referenced. _u_p_l_o = 'L' or 'l': only the lower triangular part of _c is referenced. For C/C++, a pointer to this character is passed. _t_r_a_n_s Character*1. (input) Specifies the operation to be performed, as follows: _t_r_a_n_s = 'N' or 'n': _C <- _a_l_p_h_a _A_A_T + _b_e_t_a _C _t_r_a_n_s = 'T' or 't': _C <- _a_l_p_h_a _A_T_A + _b_e_t_a _C For C/C++, a pointer to this character is passed. _n Integer. (input) Specifies the order of matrix _C. _n must be >= 0. _k Integer. (input) On entry with _t_r_a_n_s = 'N' or 'n', _k specifies the number of columns of matrix _A. On entry with _t_r_a_n_s = 'T' or 't', _k specifies the number of rows of matrix _A. _k must be >= 0. _a_l_p_h_a Scalar factor. (input) SSSSSSSSYYYYRRRRKKKK: Single precision. DDDDSSSSYYYYRRRRKKKK: Double precision. CCCCSSSSYYYYRRRRKKKK: Single precision complex. ZZZZSSSSYYYYRRRRKKKK: Double precision complex. For C/C++, a pointer to this scalar is passed when alpha is complex; otherwise, alpha is passed by value. _a Array of dimension (_l_d_a,_k_a). (input) SSSSSSSSYYYYRRRRKKKK: Single precision array. DDDDSSSSYYYYRRRRKKKK: Double precision array. PPPPaaaaggggeeee 3333 SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) CCCCSSSSYYYYRRRRKKKK: Single precision complex array. ZZZZSSSSYYYYRRRRKKKK: Double precision complex array. When _t_r_a_n_s_a = 'N' or 'n', _k_a is _k; otherwise, it is _n. Contains the matrix _A. Before entry with _t_r_a_n_s = 'N' or 'n', the leading _n-by-_k part of array _a must contain matrix _A; otherwise, the leading _k-by-_n part of array _a must contain matrix _A. _l_d_a Integer. (input) Specifies the first dimension of _a as declared in the calling program. If _t_r_a_n_s = 'N' or 'n', _l_d_a >= MMMMAAAAXXXX(1,_n); otherwise, _l_d_a >= MMMMAAAAXXXX(1,_k). _b_e_t_a Scalar factor. (input) SSSSSSSSYYYYRRRRKKKK: Single precision. DDDDSSSSYYYYRRRRKKKK: Double precision. CCCCSSSSYYYYRRRRKKKK: Single precision complex. ZZZZSSSSYYYYRRRRKKKK: Double precision complex. For C/C++, a pointer to this scalar is passed when beta is complex; otherwise, beta is passed by value. _c Array of dimension (_l_d_c,_n). (input and output) SSSSSSSSYYYYRRRRKKKK: Single precision array. DDDDSSSSYYYYRRRRKKKK: Double precision array. CCCCSSSSYYYYRRRRKKKK: Single precision complex array. ZZZZSSSSYYYYRRRRKKKK: Double complex array. Contains the matrix _C. Before entry with _u_p_l_o = 'U' or 'u', the leading _n-by-_n upper triangular part of array _c must contain the upper triangular part of the symmetric matrix. The strictly lower triangular part of _c is not referenced. On exit, the upper triangular part of the updated matrix overwrites the upper triangular part of array _c. Before entry with _u_p_l_o = 'L' or 'l', the leading _n-by-_n lower triangular part of array _c must contain the lower triangular part of the symmetric matrix. The strictly upper triangular part of _c is not referenced. On exit, the lower triangular part of the updated matrix overwrites the lower triangular part of array _c. _l_d_c Integer. (input) Specifies the first dimension of _c as declared in the calling program. _l_d_c >= MMMMAAAAXXXX(1,_n). NNNNOOOOTTTTEEEESSSS These routines are Level 3 Basic Linear Algebra Subprograms (Level 3 BLAS). PPPPaaaaggggeeee 4444 SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Array of dimensions (_m,_n) xxxx((((mmmm,,,,nnnn)))) Character CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN Single precision complex CCCCOOOOMMMMPPPPLLLLEEEEXXXX Double precision complex DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX C/C++: Array dimensioned _n xxxx[[[[_n]]]] Array of dimensions (_m,_n) xxxx[[[[mmmm****nnnn]]]] Character cccchhhhaaaarrrr Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ssssccccssssllll____ccccoooommmmpppplllleeeexxxx Double precision complex ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx C++ STL: Array dimensioned _n xxxx[[[[_n]]]] Array of dimensions (_m,_n) xxxx[[[[mmmm****nnnn]]]] Character cccchhhhaaaarrrr Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) PPPPaaaaggggeeee 5555 SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) SSSSSSSSYYYYRRRRKKKK((((3333SSSS)))) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> Double precision complex ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> Note that you can explicitly declare multidimensional C/C++ arrays provided that the array dimensions are swapped with respect to the Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran). To avoid a compiler type mismatch error in C++ (or a compiler warning message in C), however, the array should be cast to a pointer of the appropriate type when passed as an argument to a SCSL routine. SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), CCCCHHHHEEEERRRRKKKK(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 6666